<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Manage extends MY_Controller {
	public function __construct(){
		parent::__construct();
		$this ->load ->database();
		$this ->load ->helper('url');	
	}

	// 管理员显示
	public function index()
	{
		$data=$this ->db ->get('admin')->result_array();
		// print_r($data);die;
		$this ->load ->view('admin/user',['data'=>$data]);
	}
	// 管理员添加
	public function add()
	{

		$admin_name=$this ->input ->post('admin_name');
		$admin_pwd=$this ->input ->post('admin_pwd');
		// 验证唯一性
		// print_r($this ->input ->post());die();
		$this ->load ->model('admin');
		$arr=$this ->admin ->register($admin_name);
		if ($arr) {
			// 用户名已存在
			redirect('admin/manage/index');
		}else{
			$data=$this ->input ->post();
			$data['admin_pwd']=md5($admin_pwd);
			$data['reg_time']=time();
			$res=$this ->admin ->adminadd($data);
			if ($res) {
				redirect('admin/manage/index');
			}else{
				redirect('admin/manage/index');
			}

		}
		
	}

	// 管理员修改
	public function adminup()
	{

		$id=$this ->uri->segment(4);
		if ($this ->input->post()) {
			$admin_name=$this ->input ->post('admin_name');
			// $admin_id=$this ->input ->post('admin_id');
			$this ->load ->model('admin');
			// 验证唯一性
			// print_r($this ->input ->post());die();
			$this ->load ->model('admin');
			$arr=$this ->admin ->register($admin_name);
			if ($arr) {
			// 用户名已存在
				redirect('admin/manage/index');
			}else{
				// 修改
				$res =$this ->admin ->updateone($this ->input->post());
				// print_r($res);die;
				if ($res) {
					redirect('admin/manage/index');
				}else{
					redirect('admin/manage/adminup');
				}

			}
			
		}else{
			
			$this ->load ->model('admin');
			$arr=$this ->admin ->getone($id);
			return $this ->load ->view('admin/adminup',['arr'=>$arr]);
		}
	}
	// 管理员删除
	public function admindel()
	{
		$admin_id=$this ->input ->post('admin_id');
		$this ->load ->model('admin');
		$res = $this ->admin ->admindel($admin_id);
		// print_r($res);die;
		if ($res) {
			echo 1;
		}else{
			echo 0;
		}
	}


	// 角色添加
	public function roleadd()
	{
		if ($this ->input->post()) {
			$post=$this ->input->post();
			$role_name=$post['role_name'];
			// 验证唯一性
			
			$this ->load ->model('role');
			$arr=$this ->role ->roleyi($role_name);
			if ($arr) {
			// 角色名称已存在
				redirect('admin/manage/roleadd');
			}else{
				// 添加
				$res =$this ->db ->insert('role',$post);
				// print_r($res);die;
				if ($res) {
					redirect('admin/manage/rolelist');
				}else{
					redirect('admin/manage/roleadd');
				}

			}
			
		}else{

			return $this ->load ->view('admin/role_add');
		}
	}

	// 角色显示
	public function rolelist()
	{
		// 查询所有开启的角色数据
		$this ->load ->model('role');
		$data=$this ->role ->getlist();
		//print_r($data);die;
		return $this ->load ->view('admin/rolelist',['data'=>$data]);
	}
	// 角色删除
	public function roledel()
	{
		$role_id=$this ->input ->post('role_id');
		$this ->load ->model('role');
		$res = $this ->role ->roledel($role_id);
		// print_r($res);die;
		if ($res) {
			echo 1;
		}else{
			echo 0;
		}
	}
	// 角色修改
	public function roleup()
	{
		if ($this ->input->post()) {
			$post=$this ->input->post();
			$role_name=$post['role_name'];
			// 验证唯一性
			$this ->load ->model('role');
			$arr=$this ->role ->roleyi($role_name);
			if ($arr) {
			// 角色名称已存在
				redirect('admin/manage/roleup');
			}else{
				// 添加
				// print_r($post);die;
				$res =$this ->role->roleup($post);
				// print_r($res);die;
				if ($res) {
					redirect('admin/manage/rolelist');
				}else{
					redirect('admin/manage/roleup');
				}

			}
			
		}else{
			$role_id=$this ->uri->segment(4);

			$this ->load ->model('role');
			$arr=$this ->role ->roleone($role_id);
			return $this ->load ->view('admin/role_up',['arr'=>$arr]);
		}
	}

	// 权限添加 节点
	public function accessadd()
	{
		if ($this ->input->post()) {
			$post=$this ->input->post();
			
			// 添加
			$res =$this ->db ->insert('access',$post);
			
			if ($res) {
				redirect('admin/manage/accesslist');
			}else{
				redirect('admin/manage/accessadd');
			}

		}else{

			return $this ->load ->view('admin/access_add.php');
		}
	}

	// 权限显示
	public function accesslist()
	{
		// 查询所有的权限数据
		$data=$this ->db ->get('access')->result_array();
		//print_r($data);die;
		return $this ->load ->view('admin/accesslist',['data'=>$data]);
	}
	// 权限删除
	public function accessdel()
	{
		$access_id=$this ->input ->post('access_id');
		$this ->load ->model('access');
		$res = $this ->access ->accessdel($access_id);
		// print_r($res);die;
		if ($res) {
			echo 1;
		}else{
			echo 0;
		}
	}
	// 权限修改 节点
	public function accessup()
	{
		$this ->load ->model('access');
		if ($_POST) {
			$post=$this ->input->post();
			// 修改
			// print_r($post);die;


			$res =$this ->access ->accessup($post);
			// print_r($res);die;
			if ($res) {
				redirect('admin/manage/accesslist');
			}else{
				redirect('admin/manage/accessup');
			}

		}else{
			$access_id=$this ->uri->segment(4);
			
			$arr=$this ->access ->accessone($access_id);
			// print_r($arr);die;
			return $this ->load ->view('admin/access_up',['arr'=>$arr]);
		}
	}



	// 管理员分配角色
	public function admin_role()
	{
		if ($_POST) {
			$post=$this ->input ->post();
			// 删除该角色的旧权限
			$this ->db ->delete('admin_role',['admin_id'=>$post['admin_id']]);
			// 添加新权限

			foreach ($post['role_id'] as $k => $v) {
				$this ->db ->insert('admin_role',['admin_id'=>$post['admin_id'],'role_id'=>$v]);
			}
			redirect('admin/manage/index');
		}else{

			// 接收id 查询该管理员
			$admin_id=$this ->uri->segment(4);
			// print_r($admin_id);
			$this ->load ->model('admin');
			$admin_arr=$this ->admin ->getone($admin_id);
			// print_r($admin_arr);die;
			// 查询所有开启的角色
			$this ->load ->model('role');
			$role_data=$this ->role ->getroleall();
			// print_r($role_data);die;
			// 查询该角色拥有的旧角色 admin_role中间表和权限表联查
			$this ->load ->model('admin');
			$admin_role=$this ->admin ->admin_role($admin_id);
			// print_r($admin_role);die;
			// print_r($admin_role);die;
			return $this ->load ->view('admin/admin_role',[
				'admin_arr'=>$admin_arr,
				'role_data'=>$role_data,
				'admin_role'=>$admin_role
				]);
		}
	}
	// 角色配置权限
	public function role_access()
	{
		if ($_POST) {
			$post=$this ->input ->post();
			// 删除该角色的旧权限
			$this ->db ->delete('role_access',['role_id'=>$post['role_id']]);
			// 添加新权限
			foreach ($post['access_id'] as $k => $v) {
				$this ->db ->insert('role_access',['role_id'=>$post['role_id'],'access_id'=>$v]);
			}
			redirect('admin/manage/rolelist');
		}else{

			// 接收id 查询该角色
			$role_id=$this ->uri->segment(4);
			$this ->load ->model('role');
			$role_arr=$this ->role ->roleone($role_id);
			// 查询所有开启的权限
			$this ->load ->model('access');
			$access_data=$this ->access ->getaccessall();
			// 查询该角色拥有的旧权限 role_access中间表和权限表联查
			$this ->load ->model('role');
			$role_access=$this ->role ->role_access($role_id);
			// print_r($role_access);die;
			return $this ->load ->view('admin/role_access',['role_arr'=>$role_arr,'access_data'=>$access_data,'role_access'=>$role_access]);
		}
		
	}

	




}






 ?>